אני מנסה לקרוא נתונים מ-2 טבלאות במסד וזה פשוט לא מציג כלום.
עריכה: (זה מציג אבל יש בעיה יותר מורכבת שזה מציג לי את הנתון האחרון 16 פעם ולא מציג את ה- 16 האחרונים)
$link = mysql_connect(CON_SERVER, CON_USERNAME, CON_PASSWORD)or die(mysql_error());
mysql_select_db(CON_DATABASE) or die(mysql_error());
mysql_set_charset("utf8",$link);
$query = mysql_query("SELECT *
FROM ".CON_PREFIX."Pack, ".CON_PREFIX."Screen
WHERE ID
ORDER BY Time DESC
LIMIT 0,16");
while($p3=mysql_fetch_array($query))
{
?>
7 תשובות
מה הכוונה ב
WHERE ID
לשלוף את כל השורות שבהם האידי : ???
where Pack.ID = Screen.ID
order by Pack.Time DESC
LIMIT 0,16
אלכס התכוונתי שזה מורכב
כי אני רוצה לשלוף מטבלת Pack את ה- 16 נתונים אחרונים ומטבלת Screen את ה- 16 נתונים אחרונים.
בטבלת Pack המספור הוא תחת ID ובטבלת Screen המספור של ה ID שתואם לטבלת Pack הינו PID
אני ישלח לך תמונות שתבין יותר טוב.
זה טבלת Packages
זה טבלת ScreenShots
טעיתי ב- WHERE התכוונתי לשים בו Stat` = '1' AND Depiction != ''
משהו כזה אמור לעבוד
where ScreenShots.PID = Packages.Id
Order by packages.id desc
limit 16
ואם אתה צריך רק את הסריןשוט האחרון של כל חבילה ולא את כולם, אז משהו בסגנון
where ScreenShots.ID = (SELECT Max(ScreenShots.ID) FROM ScreenShots WHERE ScreenShots.PID = Packages.ID)
Order by Packages.ID desc
limit 16
אלכס הקוד עובד מצויין וראיתי היום סגנון של הקוד הזה ופעלתי בסגנון שלו , יש רק בעיה קטנה (וגם עם הקוד שהבאת הבעיה חוזרת).
זה מציג את כל יישות ID שנמצא בטבלה ScreenShots, האם אפשרי לעשות שזה יציג רק תמונה אחת מ כל יישות PID.
בתמונה למטה מסומן השדות PID שהוא חוזר עליהם ואין צורך שהם יחזרו מספיק שהוא יציג כל PID פעם אחת.
@intval השאילתה השנייה ממש לא יעילה,הרבה יותר מהיר יהיה להשתמש ב join מאשר לבצע תת שאילתה עבור כל שורה (17 שאילתות). כנ"ל לגבי הראשונה אבל בשנייה זה הרבה יותר קריטי.
ד.א אלכס החיבור באמצעות google לא עובד יותר ודורש שחזור סיסמא על מנת להתחבר.בנוסף הכתובת לשחזור סיסמא אינה תיקנית [הדומיין מופיע פעמיים]
@itzik שימוש ב group by יפתור לך את הבעיה.